home *** CD-ROM | disk | FTP | other *** search
/ PD ROM 1 / PD ROM Volume I - Macintosh Software from BMUG (1988).iso / Stacks / Updates⁄New / TEXAS for BMUG / C progs / qndxr.2 ƒ / merge_utils.2.c < prev    next >
Encoding:
C/C++ Source or Header  |  1987-11-03  |  3.7 KB  |  157 lines  |  [TEXT/KAHL]

  1. /* file "merge_utils.c" ... 870902-... ^z
  2.  * misc. utilities for the merge_indices functions...
  3.  */
  4.  
  5. #include <stdio.h>
  6. #include <unix.h>
  7. #include <storage.h>
  8. #include <strings.h>
  9. #include <ctype.h>
  10. #include <proto.h>
  11. #include "qndxr.2.h"
  12.  
  13. /* function to open an input key file for this generation and file number
  14.  */
  15.  
  16. FILE *open_inkfile (generation_number, file_number)
  17.   int generation_number, file_number;
  18.   {
  19.     FILE *fopen();
  20.     char fname[32];
  21.     
  22.     sprintf (fname, "x%dk%d", generation_number, file_number);
  23.     return (fopen (fname, "rb"));
  24.   }
  25.  
  26.  
  27. /* function to open an input ptr file for this generation and file number
  28.  */
  29.  
  30. FILE *open_inpfile (generation_number, file_number)
  31.   int generation_number, file_number;
  32.   {
  33.     FILE *fopen();
  34.     char fname[32];
  35.     
  36.     sprintf (fname, "x%dp%d", generation_number, file_number);
  37.     return (fopen (fname, "rb"));
  38.   }
  39.  
  40.  
  41. /* function to open an output key file for this generation and file number
  42.  */
  43.  
  44. FILE *open_outkfile (generation_number, file_number)
  45.   int generation_number, file_number;
  46.   {
  47.     FILE *fopen();
  48.     char fname[32];
  49.     
  50.     sprintf (fname, "x%dk%d", generation_number + 1, file_number / NMERGE);
  51.     return (fopen (fname, "wb"));
  52.   }
  53.  
  54.  
  55. /* function to open an output ptr file for this generation and file number
  56.  */
  57.  
  58. FILE *open_outpfile (generation_number, file_number)
  59.   int generation_number, file_number;
  60.   {
  61.     FILE *fopen();
  62.     char fname[32];
  63.     
  64.     sprintf (fname, "x%dp%d", generation_number + 1, file_number / NMERGE);
  65.     return (fopen (fname, "wb"));
  66.   }
  67.  
  68.  
  69. /* function to rename the remaining last unpaired key file & ptr file
  70.  * from one generation to the next...
  71.  */
  72.  
  73. void fix_oddball_file_name (generation_number, file_number)
  74.   int generation_number, file_number;
  75.   {
  76.     char oldname[32], newname[32];
  77.     
  78.     sprintf (oldname, "x%dk%d", generation_number, file_number);
  79.     sprintf (newname, "x%dk%d", generation_number + 1, file_number / NMERGE);
  80.     if (rename (oldname, newname))
  81.         printf ("Sorry -- error in attempt to rename %s to %s!\n", oldname,
  82.                 newname);
  83.     
  84.     sprintf (oldname, "x%dp%d", generation_number, file_number);
  85.     sprintf (newname, "x%dp%d", generation_number + 1, file_number / NMERGE);
  86.     if (rename (oldname, newname))
  87.         printf ("Sorry -- error in attempt to rename %s to %s!\n", oldname,
  88.                 newname);
  89.   }
  90.  
  91.  
  92. /* function to give the final key and ptr files their proper ultimate
  93.  * names ...
  94.  */
  95.  
  96. void fix_final_file_names (generation_number, doc_filename)
  97.   int generation_number;
  98.   char *doc_filename;
  99.   {
  100.     char oldname[32], finalname[65];
  101.     
  102.     sprintf (oldname, "x%dk0", generation_number);
  103.     sprintf (finalname, "%s.k", doc_filename);
  104.     if (rename (oldname, finalname))
  105.         printf ("Sorry -- error in renaming file %s to %s!\n", oldname,
  106.                 finalname);
  107.  
  108.     sprintf (oldname, "x%dp0", generation_number);
  109.     sprintf (finalname, "%s.p", doc_filename);
  110.     if (rename (oldname, finalname))
  111.         printf ("Sorry -- error in renaming file %s to %s!\n", oldname,
  112.                 finalname);
  113.   }
  114.  
  115.  
  116. /* function to get rid of the superfluous k & p files now that they
  117.  * have been merged into the next generation....
  118.  */
  119.  
  120. void remove_used_infiles (generation_number, file_number, n)
  121.   int generation_number, file_number, n;
  122.   {
  123.     char fname[32];
  124.     register int i;
  125.     
  126.     for (i = 0; i < n; ++i)
  127.       {
  128.         sprintf (fname, "x%dk%d", generation_number, file_number + i);
  129.         DEBUG ("--removing %s\n", fname);
  130.         if (unlink (fname))
  131.             printf ("Sorry -- unable to delete file %s!\n", fname);
  132.         sprintf (fname, "x%dp%d", generation_number, file_number + i);
  133.         DEBUG ("--removing %s\n", fname);
  134.         if (unlink (fname))
  135.             printf ("Sorry -- unable to delete file %s!\n", fname);
  136.       }
  137.   }
  138.  
  139.  
  140. /* function to close out the ink and inp files that have been opened...
  141.  */
  142.  
  143. void close_infiles (ink, inp, n)
  144.   FILE *ink[], *inp[];
  145.   register int n;
  146.   {
  147.     register int i;
  148.     
  149.     for (i = 0; i < n; ++i)
  150.       {
  151.         fclose (ink[i]);
  152.         fclose (inp[i]);
  153.       }
  154.   }
  155.  
  156.  
  157.